// #include "util.hpp"
// #include "db.hpp"
// #include "online.hpp"
#include "session.hpp"
#include "room.hpp"
#include "matcher.hpp"
#include "server.hpp"
#define HOST "113.45.247.216"
#define USER "root"
#define PASS "Lyh55204800.0"
#define DBNAME "gobang"
#define PORT 3306

void mysql_test()
{
    MYSQL *mysql = mysql_util::mysql_creat(HOST,USER,PASS,DBNAME,PORT);
    const char *sql = "insert into stu values(null,'鸭鸭',18,88,88,88);";
    bool ret = mysql_util::mysql_exec(mysql,sql);
    if(ret == false)
    {
        return ;
    }

    mysql_util::mysql_destory(mysql);
}

void json_test()
{
    Json::Value root;
    std::string body;

    root["姓名"] = "小明";
    root["年龄"] = 18;
    root["成绩"].append(98);
    root["成绩"].append(99);
    root["成绩"].append(100);

    json_util::serialize(root,body);
    DLOG("%s",body.c_str());
    

    Json::Value val;
    json_util::unserialize(body,val);
    
    std::cout << "年龄" << val["年龄"].asInt() <<std::endl;
    std::cout << "姓名" << val["姓名"].asString() <<std::endl;
    int sz = val["成绩"].size();
    for(int i = 0;i < sz;i++)
    {
        std::cout << "成绩:" << val["成绩"][i].asFloat() << std::endl;
    }


}

void str_test()
{
    std::string str = "123,234,,,,345";
    std::vector<std::string> arry;
    string_util::split(str,",",arry);

    for(auto s : arry)
    {
        DLOG("%s",s.c_str());
    }
    
}


void file_test()
{
    std::string filename = "./makefile";
    std::string body;
    file_util::read(filename,body);

    std::cout<<body<<std::endl;
}

void db_test()
{
    user_table ut(HOST,USER,PASS,DBNAME,PORT);
    Json::Value user;
    user["username"] = "xiaoming";
   // user["password"] = "123";
//     ut.insert(user);
     bool ret = ut.insert(user);
    // if(ret == false)
    // {
    //     DLOG("登录失败");
    // }

    //bool ret = ut.lose(1);
    // std::string body;
    // json_util::serialize(user,body);
    // std::cout<<body<<std::endl;






}

void online_test()
{
    online_manager om;
    wsserver_t::connection_ptr conn;
    uint64_t uid = 2;
    om.enter_game_room(uid,conn);
    if(om.is_in_game_room(uid))
    {
        DLOG("在游戏房间中");

    }
    else
    {
        DLOG("不在游戏房间中");
    }
    om.exit_game_room(uid);
    if(om.is_in_game_room(uid))
    {
        DLOG("在游戏房间中");

    }
    else
    {
        DLOG("不在游戏房间中");
    }

}

int main()
{
    //mysql_test();
    //json_test();
    //str_test();
    //file_test();
    //db_test();
    //online_test();

    // user_table ut(HOST,USER,PASS,DBNAME,PORT);
    // online_manager om;
    // room_manager rm(&ut,&om);
    // room_ptr rp  = rm.create_room(10,20);
    // matcher mc(&rm,&ut,&om);

    gobang_server _server(HOST,USER,PASS,DBNAME,PORT);
    _server.start(8085);










    return 0;

}